/**
 * 联系表单消息服务
 * @module services/messageService
 */

import api from './api';

/**
 * 提交联系表单
 * @param {Object} message - 消息数据
 * @returns {Promise<Object>} 提交结果
 */
export const submitMessage = async (message) => {
  try {
    return await api.post('/contact', message);
  } catch (error) {
    console.error('提交联系表单失败:', error);
    throw error;
  }
};

/**
 * 获取所有消息(管理员)
 * @param {Object} params - 查询参数
 * @returns {Promise<Object>} 消息列表
 */
export const getAllMessages = async (params = {}) => {
  try {
    return await api.get('/contact', { params });
  } catch (error) {
    console.error('获取消息列表失败:', error);
    throw error;
  }
};

/**
 * 获取单个消息
 * @param {string} id - 消息ID
 * @returns {Promise<Object>} 消息详情
 */
export const getMessageById = async (id) => {
  try {
    return await api.get(`/contact/${id}`);
  } catch (error) {
    console.error('获取消息详情失败:', error);
    throw error;
  }
};

/**
 * 标记消息为已读
 * @param {string} id - 消息ID
 * @returns {Promise<Object>} 操作结果
 */
export const markAsRead = async (id) => {
  try {
    return await api.put(`/contact/${id}/read`);
  } catch (error) {
    console.error('标记消息已读失败:', error);
    throw error;
  }
};

/**
 * 删除消息
 * @param {string} id - 消息ID
 * @returns {Promise<Object>} 删除结果
 */
export const deleteMessage = async (id) => {
  try {
    return await api.delete(`/contact/${id}`);
  } catch (error) {
    console.error('删除消息失败:', error);
    throw error;
  }
}; 